package com.du.design.status;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @desc:
 * @author: shuangdu
 * @date: 2021/9/7
 * @since: 1.8
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class StateMachineTransaction {

    private NodeChain current;

    private List<NodeChain> nodes;

    private ApplyStatus applyStatus;

    private String applyStatusName;

    private ExamState action;

    private Event event;

    public interface Event {
        void process(StateMachineTransaction stateMachineTransaction);
    }
}
